<?php

require_once "Basic.php";

class Page {

  private $preHtml; 
  private $posHtml;
  private $menu;
  private $content;
  private $title;
  
  public function __construct($title) {
    $this->title = $title;
    $this->menu = "";
    $this->content = "";
    $this->preHtml = <<<EOF
<!DOCTYPE html>
<html>
  <head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
    <link href="StdStyle.css" type="text/css" rel="stylesheet">
    <title>${title}</title>
  </head>
  <body>
    <div class="content">
      <div class="header">
        <h1>${title}</h1>
      </div>
      <div style="clear:both"></div>
EOF;
    $this->posHtml = <<<EOF
      <div style="clear:both"></div>
      <div class="footer">
        <p>A <em class="company">Locarr&atilde;o</em> &eacute; uma empresa de loca&ccedil;&atilde;o de ve&iacute;culos
          com filiais em diversas localidades do Brasil. Este sistema web foi desenvolvido pelos alunos Pedro 
          Henrique Antunes de Oliveira (70344), Rodrigo Sidney Pereira (61939), La&iacute;s Fran&ccedil;a Baumgratz
          (70357), Denis Moreira Ferreira (62392).</p>
      </div>
    </div>
  </body>
</html>
EOF;
    $this->setMenu();
  }
  
  /**
   * Deve configurar o menu da página de acordo com o usuário que está logado, ou de acordo com o funcionário que
   * está logado, ou então de acordo com o visitante.
   */
  private function setMenu() {
    $menuLinks = array("Index" => "index.php");
    if(isLoggedIn()) {
      if(isLoggedAsEmployee()) {
        $menuLinks["Cadastro de Tipo de Modelo"] = StdForm::decoreHref("ModelTypeCreate.php", StdForm::ACTION_VALUE_PRINT);
        $menuLinks["Cadastro de Modelo"] = StdForm::decoreHref("ModelCreate.php", StdForm::ACTION_VALUE_PRINT);
        $menuLinks["Cadastro de Ve&iacute;culo"] = StdForm::decoreHref("VehicleCreate.php", StdForm::ACTION_VALUE_PRINT);
        $menuLinks["Cadastro de Cliente"] = StdForm::decoreHref("ClientCreate.php", StdForm::ACTION_VALUE_PRINT);
        $menuLinks["Tipos de Modelos"] = "ModelTypeList.php";
        $menuLinks["Modelos"] = "ModelList.php";
        $menuLinks["Ve&iacute;culos"] = "VehicleList.php";
        $menuLinks["Clientes"] = "ClientList.php";
        $menuLinks["Todas as Reservas"] = "ReservaList.php";
        $menuLinks["Buscar Cliente"] = "ClientByEmail.php";
        $menuLinks["Cancelar Reservas Atrasadas"] = "CloseDay.php";
        $menuLinks[htmlentities("Fazer uma Locação")] = "RequestAllocation.php";
        $menuLinks[htmlentities("Todas as Locações")] = "AllAllocations.php";
        $menuLinks[htmlentities("Realizar uma Devolução")] = "MakeReturn.php";
        $menuLinks[htmlentities("Locações não Quitadas")] = "NonpaidAllocations.php";
        $menuLinks[htmlentities("Pagar uma Locaçao")] = "SelectAllocationForPayment.php";
        $menuLinks["Frota Disponível Por Marca"] = "FrotaDisponivelMarca.php";
        $menuLinks[htmlentities("Apanhado Geral das Locações")] = "SubsidiaryAllocations.php";
      }
      else {
        if(isLoggedAsClient()) {
          $menuLinks["Perfil"] = "ClientInfo.php?idCliente=" . userId();
          $menuLinks["Fazer uma Reserva"] = "MakeReservation.php";
          $menuLinks["Ver Reservas"] = "ReservasUsuario.php?idCliente=" . userId();
          $menuLinks["Locações"] = "AllocationsClient.php?idCliente=" . userId();
        }
        else {
          if(isLoggedAsAdmin()) {
            $menuLinks[htmlentities("Locações não Quitadas")] = "NonpaidAllocations.php";
            $menuLinks["Cadastro de Filial"] = StdForm::decoreHref("SubsidiaryCreate.php", StdForm::ACTION_VALUE_PRINT);
            $menuLinks["Filiais"] = "SubsidiaryList.php";
            $menuLinks[htmlentities("Apanhado Geral Total de Locações")] = "AllocationsGeneralTotal.php";
            $menuLinks[htmlentities("Apanhado Geral Por Filial de Locações")] = "AllocationsGeneralSubsidiary.php";
          }
        }
      }
      $menuLinks["Logout"] = "Logout.php";
    }
    else {
      $menuLinks["Login"] = StdForm::decoreHref("Login.php", StdForm::ACTION_VALUE_PRINT);
      $menuLinks["Cadastre-se"] = StdForm::decoreHref("ClientCreate.php", StdForm::ACTION_VALUE_PRINT);
    }
    foreach($menuLinks as $item => $link) {
      $this->menu .= "<li><a href='${link}' class='menuLink'><span class='text'>${item}</span></a></li>";
    }
  }
  
  public function addContent($html) {
    $this->content .= $html;
  }
  
  public function getHtml() {
    return $this->preHtml . "<div class='menu'><ul>" .
           $this->menu . "</ul></div><div class='main'>" .
           $this->content . "</div>" . $this->posHtml;
  }
  
}
